HISTORY FILE FOR CHIEF'S INSTALLER PRO -------------------------------------- Version 2.00 (September 1995) ---------------------------- 1. Extension of "$SOURCEDIR" - can be used to change the source directory from the default (useful for internal customisations) e.g., $SOURCEDIR=D:\BIN\LOCAL\APP2 * can also be used in $ICON lines, and all other lines e.g., $ICON=$SOURCEDIR\SETUP.EXE;Re-Install MyProg v1.20 2. The directory pointed to by $TARGET will now be created recursively (in such cases the root of that directory will not be removed by the uninstaller). 3. New reserved word : $AUTOEXEC.BAT (to make entries into AUTOEXEC.BAT) Will look first in C:\ then in the PATH. Entries not deleted by the uninstaller. e.g. $autoexec.bat=SET TROOK=$DEST\TROOK 4. Limited support for UNC names (on supporting networks). 5. Extension of $DEST to provide for installing files to other drives and directories - use $DEST!!== e.g., $DEST!!=D:\New=*.ini;*.txt;*.tkt * other reserved words - e.g., $windir, $sysdir, etc., can be used here. 6. Limits removed from the maximum number of lines allowed for most reserved words; Limits removed -------------- $INI = no limit on number of lines $FONT = no limit on number of lines $REG-DATA = no limit on number of lines $BATCH-FILE = no limit on number of lines $CLEANUP = no limit on number of lines $AUTO-REPLACE = no limit on number of lines $AUTOEXEC.BAT = no limit on number of lines $DEST = no limit on number of lines $OPTIONAL = no limit on number of lines $WINDIR = no limit on number of lines (or files) $SYSDIR = no limit on number of lines (or files) Number of lines in batch files = no limit Number of files on each $DISK# = no limit Exceptions ---------- $ICON = max 128 lines (but check $ICO = no limit) Number of install disks = max 64 disks 7. Extension of $REG-DATA to cope with new classes roots (in preparation for the Win32 version). If an "HKEY_xxx\" root parameter is passed, then the whole entry will be passed on without having HKEY_CLASSES_ROOT prepended to it. Note that the key MUST end with a back-slash; e.g., $reg-data=HKEY_USERS\ChiefPro=Chief's Installer Pro (NOTE: ** This is a 16-bit program, so please do NOT use any root key other than HKEY_CLASSES_ROOT under Win95 or Windows NT). 8. New reserved word: $UNZIP e.g., $UNZIP=;; "Code" specifies how to deal with files which already exist. Possible values are; OVERWRITE-ALL (overwrite all existing files without warning) OVERWRITE-OLDER (overwrite only older files [by date-stamp]) SKIP (skip existing files) CONFIRM (ask for confirmation before overwriting existing files) e.g., $UNZIP=$sourcedir\bin.zip;$dest\bin;SKIP 9. New reserved word: $DATA-SPACE (for any non-optional data that your app might need to create at installation - not part of percent meter - but will be added to the free space checks) 10. Extension of $TARGET: $WINDIR and $SYSDIR can now be used in the $TARGET line e.g., $TARGET=$WINDIR\MYAPP 11. Bottom left corner of progress dialog now shows the number of the disk being processed 12. Installation can now be aborted between disk changes, by clicking on the "Abort" button on the dialog that prompts for the next disk. 13. New support for displaying messages (up to 10) during the course of the installation. All the messages must be in an ascii file called WINSTALL.MSG. Each message section must begin with a [#] (e.g., [#1]), and cannot be more than 8 lines long (max: 45 characters per line). The messages are displayed in turn, automatically (at the rate of 100 divided by the number of messages - as per the percent meter). 14. INSTALL.EXE is now so big that SETUP.EXE would now be desirable in all cases. You can compress INSTALL.EXE to prevent people from running it instead of SETUP.EXE (e.g., compress -r install.exe). 15. New reserved word: $OPTIONHELP# (e.g, $optionhelp1=xxxx) This is to present a brief explanation of the user-options to the user. Each user-option will have a small button next to it, if there is an OPTIONHELP for that option. Clicking on that button will display a message box with your brief explanation. Each user option may have up to 10 $OPTIONHELP# lines - but an absolute maximum limit of 1024 bytes applies to each user option. Realistically, this maximum should be 512 bytes, because of limits in the MessageBox() API when using CTL3D. 16. Extension of $INI to allow the assignment of $INI entries to user options. This is done by specifying the relevant user option (i.e, $USER-OPTIONx) as the 5th entry on the $INI line (or as the 6th entry, if the 5th entry is used for NO-REPLACE). If the specified user option is de-selected by the user at runtime, then the INI entry will not be made. 17. New (limited) support for installing files from subdirectories of the source directory (e.g., on a cd-rom or a network drive). The scheme is to use each such subdirectory as a pseudo floppy disk - i.e., the files in the subdirectory will be specified on a $disk# line, and then the subdirectory itself will be called $disk# (e.g., $disk2 = for the files which will be on the $disk2 lines). If you specify $verify-install-disks then you should also have a file called $disk#.dsk in the subdirectory. 18. The installer will now automatically look for directories names $disk# under the source directory, to install $disk# files from. This includes $disk1 as well. This simplifies installing from network disks/cd-roms. 19. New reserved word: $MAX-DUPLICATES This allows the installation of the same file into more than one destination directory. The command takes one parameter - the maximum number of times a single file can be duplicated in this way. By default, this value is set at 1. You can increase it to any number up to 30. Note that increasing this number will mean the installer looping through each $DEST\xx directory the specified number of times, for EACH file being installed. This is guaranteed to slow down the installation considerably, if the specified number is too high. Using it can also lead to multiple copies of files which you do not really want to be duplicated - this is especially so if you use wilcards at all, in your $DEST\xx lines. 20. Extension of $ICON. If the last parameter on the $ICON line is "ALLOW-DUPLICATES" (or "1") then existing icons will be duplicated if the program is installed again. e.g. $icon=$dest\test.hlp;Help file;allow-duplicates $icon=$dest\test.hlp;Help file;1 21. When disk verification is turned ON, this now also affects the first disk ($disk1) - so you must have a $DISK1.DSK file on your first disk (even if there is only one disk in the installation set). This is to remedy the anomaly where disks from disk 2 are verified, but the first (and usually the most important) disk is not verified. 22. Extension of $VERIFY-INSTALL-DISKS - to provide extra (optional) checking of the .DSK file. To enable this, supply 'READ-FILES' as a parameter - e.g., $VERIFY-INSTALL-DISKS;READ-FILES If this feature is turned on, then the installer will treat the .DSK file for every disk as a Windows .INI file, and check in the [disk-id] section for the keyname 'disk-id'. The entry here must match the name of the .DSK file being examined - e.g., a .DSK file called $disk1.dsk must have the following entries; [disk-id] disk-id=$disk1.dsk Note that if the entry does not match, the installer will assume that the disk is the wrong one and will keep prompting for the disk. Thus, you should use this feature with care. 23. Changes in AutoCalc [a] directories for $DISK# files must now be called $DISK# and not just DISK# (under the source directory tree). Files for $DISK1 can also now be in a sub-directory of the source directory - must be called $DISK1) [b] by the same token, directories holding files for $SYSDIR, $WINDIR, and $TEMPDIR must also have the "$" sign in their names. These changes are introduced for consistency and to make things easier, especially now that the installer will first of all look for $DISK# files in similarly named sub-directories of the source directory. 24. New reserved word: $DISKDIR A directory path can now be optionally specified for the files on each disk (one path only for each $disk). This is specified by using the new $DISKDIR command. The Syntax is $DISKDIR#= ;[CODE] "#" stands for the number of the disk; "CODE" is optional; it specifies whether (for disk 2 to the end) the installer should prompt the user to insert a disk. It defaults to not prompting (to simplify installing from cd-rom or network drives). If you want the user to be prompted for a particular disk, put "ASK", or "PROMPT", or just "1" as the code. "CODE" is not valid for disk 1 e.g. $diskdir1=D:\USR\BIN $diskdir2=D:\LIB\SRC;ASK $diskdir3=$SOURCEDIR\LIB\SRC;ASK $diskdir4=$SOURCEDIR\BIN\LIB * if the specified directory is NOT found, the installer will prompt the user for a disk. * the installer will still automatically look for $disk# directories under the specified directory * this feature is optional, and is not needed at all it should be used sparingly, since it has not been tested in all possible scenarios. It is NOT advised to use this feature when installing from FLOPPY disks (i.e., it is added mainly for the convenience of those who wish to install from cd-rom, or hard disk). 25. New reserved word: $FORCE-RESTART-WINDOWS Note that this feature uses the EXITWINDOWSEXEC() API call. Thus it will fail if any program refuses to terminate (e.g., if the user has a DOS session open). 26. New reserved word: $FORCE-EXIT-WINDOWS Note that this feature uses the EXITWINDOWS() API call. Thus it will fail if any program refuses to terminate (e.g., if the user has a DOS session open). 27. New reserved words: $OK-BUTTON-TITLE and $CANCEL-BUTTON-TITLE This can be used to change the caption of the "OK" and "Cancel" buttons on the edit dialog box (note that these will sometimes be overridden by the new string resources #542 and/or #543). 28. New GUI front end (or IDE) and Project Manager (run AUTOCALC.EXE). 29. New (DOS command line) compiler for INF and BATCH files (COMPILE.EXE) The syntax is; COMPILE [/BATCH] e.g. COMPILE test.inf winstall.inf e.g. COMPILE batch1.txt program.cmd /BATCH 30. INI entries with empty settings can now be created with $INI = by supply an empty string (i.e., " ") as the 4th parameter; e.g., $INI=$dest\prog.ini;386enh;printer.drv;" " 31. Extension of $GROUP. This reserved word can now take an extra (optional) parameter ("SHOW-COMBO"), after the group name. If SHOW-COMBO is used, then a combo box displaying the names of the available Program Manager groups will be made available to the user at run time. The user can then choose any of the listed groups to use as the main group. e.g., $GROUP=Chief Pro;SHOW-COMBO 32. Extension of $BANNER-MESSAGE - to take some optional parameters; CENTERED = the banner will be centered VERTICAL = the text will be displayed vertically * must supply the X co-ordinates for the vertical text e.g., $BANNER-MESSAGE=Chief Pro v2.0;CENTERED or $BANNER-MESSAGE=Chief Pro;VERTICAL;5 33. A new progress dialog and "percent" meter 34. New reserved word $LAN-SYSDIR. This was introduced by request. 35. New reserved words $BIG-METER-COLOR and $SMALL-METER-COLOR to change the colors of the percent meters. They use the same syntax as $TEXT-BACKGROUND. 36. New buttons ("Abort" and "Help") which remain on the desktop for the duration of the install. The buttons will be shown by default, unless the (new) reserved words $NO-ABORT-BUTTON or $NO-HELP-BUTTON are used. 37. New reserved words: $NO-ABORT-BUTTON and $NO-HELP-BUTTON - to turn off the desktop "Abort" or "Help" button respectively. 38. New reserved word: $ABORT-MESSAGE - this is the message that will appear to the user when the user does something to terminate the installation (e.g., clicking on the desktop "Abort" button, after the installation has commenced). 39. New feature in the AutoCalc IDE - an option to convert Visual BASIC Setup Wizard (.VBZ) files to a Chief's Installer Pro project. 40. In respect of strings in WINSTALL.INF, "\n" was always treated as the code for a new line (carriage return). If a literal "\n" is desired, an exclamation mark should precede the "n" (i.e., "\!n"). Furthermore, the "\n" is now case sensitive - so, for example, "\N" will not be converted. 41. Extension of $DISK to take $UNZIP as a parameter. This is to unzip files from a particular disk, instead of copying files from it. In this case, the files will only go to the destination provided in the $UNZIP command. e.g. $DISK1=$UNZIP;$SOURCEDIR\BIN.ZIP;$DEST\BIN 42. New reserved word: $ICO - this is for creation of Program Manager icons, but this reserved word allows more lower level access than $ICON, and also does not have any limit on the number of lines. This command takes up to 11 parameters, each separated with a semi-colon, or a comma; 1 = the group name (or $GROUP for the default) 2 = allow duplicate icons? (0 for FALSE; 1 for TRUE) 3 = command line 4 = icon's title 5 = file to load the icon from (optional) 6 = icon index in the icon file (optional) 7 = x position of the icon in group (optional) 8 = y position of the icon in group (optional) 9 = working directory (optional) 10= hotkey (optional) 11= minimize (0 for FALSE; 1 for TRUE) (optional) "Hotkey" consists of a number, made up of a code plus the ascii code of the letter; Codes: Alt = 1024 Ctrl = 512 Shift = 256 So, if you want Alt+S then: 1024+83 (i.e., 1107) is the number. example: REM 1 2 3 4 5 6 7 8 9 10 11 $ICO=$GROUP;0;$DEST\PRG.HLP;Prg Help;$DEST\PRG.ICO;0; ; ;$DEST;1107;1 Note that icon placement in existing groups is sometimes misaligned when using the $ICO command. 43. The order of appearance of the user options has been changed on the main dialog window. 44. New group boxes (with internal numeric IDs of 1 to 9) have been created around different controls in the main dialog window. 45. New reserved word: $CLOSE-GROUP-BOX ; this allows you to close any or all of the group boxes referred to above, by supplying their numeric IDs as parameters (separated by semi-colons); e.g., $CLOSE-GROUP-B0X=1;5;6 46. New reserved word: $ABORT-UNINSTAL-QUESTION ; the question to ask when running the uninstaller, and the user clicks on the 'Close' option in the system menu. 47. Support for batch commands with a new reserved word: $BATCH-FILE. In WINSTALL.INF, you can have an unlimited number of $BATCH-FILE lines, each specifying one file; but in SETUPINF.INF, you can only have one $BATCH-FILE line. Each batch file can contain an unlimited number of lines - but note that the bigger a batch file is, the longer it will take to read it. Each line in a batch file can be up to 200 characters. Notes: 1. Whatever is done by these batch commands will normally NOT be undone by the uninstaller. 2. Batch files are executed in the order in which they appear, and are processed immediately after the files have been installed (after $ini, $fonts, $reg-data, and $autoexec.bat, but before $pre-exec, and $exec) 3. Certain reserved words are invalid when used in a batch file that is run from SETUPINF.INF - e.g., $DEST $TARGET 48. Several bugs fixed. 49. END OF THE INTRODUCTORY PRICING PERIOD. Version 1.80 (February 1995) ---------------------------- 1. New version of AutoCalc. This fixes some long standing bugs, and now creates more reliable template INF files. 2. Spanish translation of the string tables. 3. New feature: an installation can now be terminated before completion by pressing Alt+F4 or selecting "close" from the system menu on the progress dialog. It is not advised to use this feature. Please use it only as a LAST resort. Version 1.70 (February 1995) ---------------------------- 1. INSTALL.EXE has been enhanced to handle cases of mismatched filenames (single file names only) on $DISK lines. Thus, for example, if your disk file is called "FRED.DL_" and you mistakenly put "FRED.DLL" in your $DISK line, INSTALL.EXE will (if "FRED.DLL" is not found) try to look for "FRED.DL_." 2. New support for recursive creation of subdirectories under the $DEST directory tree. 3. Problems encountered with SHARE.EXE under Windows 3.1 fixed. 4. Bug in $INI fixed. 5. Problem with AUTOCALC's processing of USER OPTIONS fixed. Version 1.60 (February 1995) ---------------------------- 1. Limited new support for wildcards on the following lines; $SYSDIR, $WINDIR, $TEMPDIR, $DEST, $OPTIONAL, and $AUTO-REPLACE. This support is limited to the asterix character ("*") plus a FULL extension (e.g., *.TXT;*.EXE;*.DLL). You can mix these wildcards with full filenames (e.g., *.TXT;DRAK.GLU;TROOK.FGC;*.TRK). 2. New reserved word $DIALOG-ICON - to change the icon on the installer's dialogs. Icons must be in an optional DLL (WINSTALC.DLL) - a sample is provided, which contains 8 icons. 3. $RESTARTWIN-MESSAGE can now take an optional parameter ("DISABLE"). When used, this disables the dialog asking if the user wants to restart Windows. 4. SETUP.EXE can now install user files into the TEMP directory before running INSTALL.EXE - this is achieved by using $TEMPDIR in the SETUPINF.INF file. 5. $MAKE-UNINSTALL-LOG can now take an optional parameter ("OVERWRITE"). When used, UNINSTAL.EXE will overwrite all files and directories that it is removing, so that the user can not undelete them. This feature was introduced because a user asked for it. USE IT AT YOUR OWN PERIL! 6. New support for automatically installing fonts, with a new reserved word $FONT. 7. New reserved word $SKIP-IDENTICAL-FILES. This causes a file to be skipped, if a copy of it already exists, and that copy is exactly the same version as the copy on the installation disk. 8. $INI can now take a 5th entry - "NO-REPLACE". Use this to prevent the installer from replacing existing INI file entries (in which case the entry will be made only if none already exists). 9. New functionality in AUTOCALC, with the /FULL parameter. This will optionally generate a full template INF file, and even ATTEMPT to create your installation disks for you. This new function can be very complicated to configure properly. I wrote this for my own personal use, and only decided to add it to AUTOCALC as an after thought. This functionality is only included for those who do not mind getting their hands dirty. When properly set up, it can greatly simplify things in the future. However, it is totally optional, and I have seriously considered removing it from AUTOCALC. Thus, if you find it complex to use, just pretend that it is not there. But if you are feeling adventurous, then read the "Advanced Users" section of AUTOCACL.TXT. 10. Problem with certain files not being deleted from the TEMP directory by $CLEANUP fixed. Version 1.50x (January 1995) ---------------------------- 1. The Uninstaller can now take a parameter - the home directory of the program to be uninstalled. This means that you can now pass your program's directory ("$DEST") as a parameter to UNINSTAL.EXE when you are creating your program's icons with the $ICON command. 2. $CLEANUP can now accept wildcard characters. However, it will NOT accept "*.*". 3. Install now uses CTL3DV2.DLL but will use CTL3D.DLL if CTL3DV2.DLL is not found. 4. Uninstall will now delete INI files (but only those which are in the home directory of the program being uninstalled). 5. $USER-OPTION lines can now take an extra parameter - the word "UNCHECKED". 6. $GROUP can now take an extra parameter - the word "AUTO" or the word "DISABLE". 7. A small bug in the text buffering for the INF file has been fixed. 8. New support for restarting Windows if any active shared file was overwritten. 9. If the TEMP directory is on a different drive from the target directory, $SWAP-SPACE will now be used to check for free space on the drive which contains the TEMP directory only. 10. Files on $SYSDIR lines will now be installed into the Windows directory if the installation is being carried out on a local area network. 11. New reserved words $SYSDIR-SPACE and $WINDIR-SPACE. 12. New reserved word $BANNER-SHADOW-COLOR. 13. New support for displaying a README file to the user before the installation begins. 14. New reserved word $README-BUTTON-TEXT. 15. New reserved word $README-FONT. 16. New reserved word $SOURCEDIR. 17. New utility - AUTOCALC.EXE. 18. New (limited) support for the Registration Database, with a new reserved word $REG-DATA. 19. $BITMAP can now take an extra optional parameter "NORMAL". 20. $MAKE-UNINSTALL-LOG can now take an optional parameter - the name of the file to use as the LOG file for UNINSTAL.EXE. 21. UNINSTAL.EXE can now take an optional SECOND parameter - the name of the LOG file for the uninstall. 22. $TARGET can now take optional extra parameters - details of an INI file in the Windows directory from which entries from a previous installation of your program can be obtained. 23. Foreign language support introduced for UNINSTAL.EXE and SETUP.EXE. 24. New DOS command line utility (SHOWLOG.EXE) to show the contents of the UNINSTAL.LOG file, and new reserved word $DEBUG-LOG, to accompany it - see SHOWLOG.TXT for details. Version 1.10 (December 1994) ---------------------------- 1. new reserved word $NO-CTL3D.DLL 2. new support for splitting "$DISK=" lines over up to 10 lines for each disk in the installation set 3. SETUP.EXE now copies CTL3D.DLL to the Windows SYSTEM directory (if there is no existing copy) instead of the TEMP directory. Version 1.00 (December 1994) ---------------------------- First public release of the "Pro" version, at a special INTRODUCTORY PRICE (£20 (U.K. Sterling), or $29 (US)).